﻿using System.Collections.Generic;
using System.Data;
using System.Threading.Tasks;

namespace DapperORM.Abstractions
{
    /// <summary>
    /// ISqlAdapter
    /// </summary>
    public interface ISqlAdapter
    {
        /// <summary>
        /// prefix quote
        /// </summary>
        string QuotePrefix { get; set; }

        /// <summary>
        /// suffix quote
        /// </summary>
        string QuoteSuffix { get; set; }

        /// <summary>
        /// paramter quote
        /// </summary>
        string QuoteParamter { get; set; }

        /// <summary>
        /// bulk insert
        /// </summary>
        Task BulkInsetAsync<TEntity>(IDbConnection connection, IEnumerable<TEntity> entities, IDbTransaction transaction = null, int? commandTimeout = null) where TEntity : class;
    }
}
